前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

上一讲我们掌握了项目中静态资源的使用方法,并整合的样式库 Tailwindcss。要快速构建视图,我们还需要引入一个组件库。我估计大家应该挺烦每次使用组件时的各种导入和注册操作,这点 Nuxt3 早就解决了,组件用就完了!而且不仅仅是组件,项目中的复用逻辑 composables,工具方法 utils 等都会自动导入,这可以有效提升开发体验。

下面我们就来体验一下 Nuxt3 丝滑的自动导入功能!

# Nuxt 自动导入特性

Nuxt3 中会处理以下依赖的自动导入。

  • Nuxt 自动导入:数据访问 useFetch、状态管理 useState、App 上下文 useNuxtApp、运行时配置 useRuntimeConfig 等等。
  • Vue自动导入:ref、reactive、computed 等等。
  • 基于路径自动导入:
    • 组件目录:/components ;
    • hooks目录:/composables ;
    • 工具库目录:/utils 。

# 组件自动导入

Nuxt 中约定把组件放在components/目录中,这些组件只要被用在页面或其他组件中,就会自动导入并注册。

创建 components/Navbar.vue:

css
复制代码<template>
  <nav
    class="border-b border-slate-200 px-5 py-2 flex items-center justify-between"
  >
    <h1 class="text-2xl font-bold">Nuxt3 in Action</h1>
    <img
      class="w-[50px] border-[1px] border-slate-300 rounded-full inline-block"
      src="~/assets/avatar.png"
      alt="avatar"
    />
  </nav>
</template>
@前端进阶之旅: 代码已经复制到剪贴板

下面就可以直接使用了,layouts/default.vue:

xml
复制代码<template>
  <div>
    <Navbar></Navbar>
    <slot />
  </div>
</template>
@前端进阶之旅: 代码已经复制到剪贴板

# 组件名称约定

没有嵌套的组件会以文件名直接导入,但如果存在嵌套关系呢?例如下面的路径:

diff
复制代码| components/
--| base/
----| foo/
------| Button.vue
@前端进阶之旅: 代码已经复制到剪贴板

那么组件名称将会基于路径和文件名以大驼峰方式连起来,比如上面的base/foo/Button.vue注册名称将会是BaseFooButton,用起来将会像下面这样:

xm
fe
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏